Librerías

library(readxl)
library(tidyverse)

Load data

Data <- read_excel("Data.xlsx") # Cargamos datos

x <- "Año_Mes" # Variable dependiente
y <- c("Lat", "Long", "ELEVATION", "TMAX", "TMIN") # Variables independientes

1 All Species

Generamos la tabla con las tendencias y otras medidas de las tendencias para el set global de datos

Tabla vacía para almacenar los resultados

tabla_final_general <- data.frame( 
  "Variable"= character(),
  "Trend" = numeric(),
  "t" = numeric(),
  "p" = numeric(),
  "P95_max" = numeric(),
  "P95_min" = numeric(),
  "F" = numeric()
)

Bucle para obtener tendencia con cada variable independiente

for (i in 1:length(y)) {        
  tabla <- data.frame(          # Tabla vacía donde se guardan resultados de cada variable independiente 
    "Variable" = NA,            # para después unir a la tabla final
    "Trend" = NA,
    "t" = NA,
    "p" = NA,
    "P95_max" = NA,
    "P95_min" = NA,
    "F" = NA
  )
  tabla$Variable <- y[i]  # Rellena primera columna con el nombre de la variable
  model_g <- lm(formula(paste(y[i],  # Crea formula utilizando la variable del bucle
                              paste(x, collapse = "+"),
                              sep = " ~ ")), 
                data = Data)
  tabla$Trend <- model_g$coefficients[[2]] # Tendencia
  tabla$t <- summary(model_g)$coefficients[2, 3] # t del modelo
  tabla$p <- summary(model_g)$coefficients[2, 4] # p del modelo
  tabla$P95_max <-  confint(model_g, "Año_Mes", level = .95)[, 2] # Intervalo de confianza max del 95%
  tabla$P95_min <-  confint(model_g, "Año_Mes", level = .95)[, 1] # Intervalo de confianza min del 95%
  tabla$F <- summary(model_g)$fstatistic[1] # F del modelo
  tabla_final_general <- rbind(tabla_final_general, tabla) # Unimos las filas de la tabla general con cada una de las                                                              # tablas individuales
}

Resultados del set global de datos

DT::datatable(
  tabla_final_general,
  class = "nowrap",
  filter = 'top',
  extensions = "Buttons",
  options = list(
    autoWidth = TRUE,
    dom = 'Bfrtip',
    buttons = c("copy", "csv", "excel")
  )
)

2 Indivudual species

Generamos la tabla con las tendencias y otras medidas de las tendencias para cada una de las especies Además comparamos la tendencia de cada una de las especies con la tendencia del conjunto de datos

spp <- unique(Data$Especie) # Creamos un vector con los nombres de las especies

Creamos una función para comparar tendencias (SE UTILIZARÁ MAS ADELANTE)

compare.coeff <- function(b_g,se_g,b_i,se_i){
  return((b_g-b_i)/sqrt(se_g^2+se_i^2))
}

Tabla vacía para guardar los resultados

tabla_ind <- data.frame(
  "Spp" = character(),
  "Variable"= character(),
  "Trend" = numeric(),
  "t" = numeric(),
  "p" = numeric(),
  "P95_max" = numeric(),
  "P95_min" = numeric(),
  "F" = numeric(),
  "Dif" = numeric()
)

Bucle para calcular las tendencias de cada una de las especies y comparar con el set global

for (n in 1:length(spp)) {                            # Bucle para actuar sobre cada una de las especies
  ind <- Data %>% 
    filter( Especie == spp[n]) %>%
    mutate(group = "i")                               # Filtra la especie 
  
  if (nrow(ind) > 50) {                               # Condicional "SI" para seleccionar aquellas especies con mas de                                                        # 50 registros
    for (i in 1:length(y)) {                          # Bucle para cada una de las variables independientes
      tryCatch({                                      # Implementa código que debe ejecutarse cuando se produce la condición de error
        tabla <- data.frame(                          # Crea tabla vacía para después unificar a tabla de resultados
          "Spp" = NA,                                 
          "Variable" = NA,
          "Trend" = NA,
          "t" = NA,
          "p" = NA,
          "P95_max" = NA,
          "P95_min" = NA,
          "F" = NA,
          "Dif_1_pvalue" = NA,
          "Dif_2_coef" = NA,
          "Dif_2_pvalue" = NA,
          "Dif_2_F" = NA
        )
        # General
        model_g = lm(formula(paste(y[i], 
                                   paste(        # Crea de nuevo el modelo general para la posterior comparación
          x, collapse = "+"                      # Al ser un bucle hay que utilizar la función formula y paste
        ), sep = " ~ ")), data = Data)
        
        tabla$Spp <- unique(ind[[1]])           # Selecciona un inicio nombre de la especie filtrada del bucle
        tabla$Variable <- y[i]                  # Variable independiente utilizada en el bucle
        model_i <-                              # Crea el modelo de cada especie para la posterior comparación
          lm(formula(paste(y[i], paste(
            x, collapse = "+"
          ), sep = " ~ ")), data = ind)
        
        tabla$Trend <- model_i$coefficients[[2]] 
        tabla$t <- summary(model_i)$coefficients[2, 3]
        tabla$p <- summary(model_i)$coefficients[2, 4]
        tabla$P95_max <-  confint(model_i, "Año_Mes", level = .95)[, 2]
        tabla$P95_min <-  confint(model_i, "Año_Mes", level = .95)[, 1]
        tabla$F <- summary(model_i)$fstatistic[1]
        
        
        # Dos formas de ver si las tendencias de las especies difieren de la general
        
        # Método 1
        # Obtener una estadística z al encontrar la diferencia entre los dos coeficientes 
        # y luego dividirla por un error estándar combinado. Ver https://www.jstor.org/stable/2782277?seq=1#page_scan_tab_contents
        
        b_g <- summary(model_g)$coefficients[2,1] # Tendencia general
        se_g <- summary(model_g)$coefficients[2,2] # Desviación estándar general
        b_i <- summary(model_i)$coefficients[2,1] # Tendencia especie del bucle
        se_i <- summary(model_i)$coefficients[2,2] # desviación estándar de especie del bucle
        
        
        tabla$Dif_1_pvalue <- 2*pnorm(-abs(compare.coeff(b_g,se_g,b_i,se_i))) # Fórmula utilizando la función "compare.coeff"
        
        # Método 2  
        # Crear un modelo incorporando la interacción de la pendiente general con la de la especie Variable independiente*Año_Mes
        # el coeficiente indica que la pendiente de la especie es mayor o menor que la pendiente del conjunto de datos.
        # También observamos el pvalor para ver si es significativo (inf a 0,05 son pendientes diferentes)
        
        
        gen <- Data %>%
          mutate(group = "g")
        
        dat <- rbind(gen,ind)
        
        
        model_int = lm(formula(paste(y[i], paste(  # Crea de nuevo el modelo general para la posterior comparación
          x,"*group", collapse = "+"
        ), sep = " ~ ")), data = dat)
        
       
        tabla$Dif_2_coef <- summary(model_int)$coefficients[4,1]
        tabla$Dif_2_pvalue <- summary(model_int)$coefficients[4,4]
        tabla$Dif_2_F <- summary(model_int)$fstatistic[1]
       
        tabla_ind <- rbind(tabla_ind, tabla)  # Unimos tablas
        
      }, error = function(e) {                        # Si la función tryChach da error ejecuta esta parte del código
        cat(
          paste0("WARNING: Specie ", ind[1, 1], " variable (", y[i], ") has"), # Indica que especie tiene el problema y por qué
          conditionMessage(e),                                                 
          "\n"
        )
      })
    }
  } else{
    print(paste0("Data for ", ind[1, 1], " specie are insufficient")) # Si en el condicional no hay suficientes registros
                                                                      # para una especie (<50) expresa el mensaje
  }
}
## [1] "Data for Aegialia arenaria specie are insufficient"
## [1] "Data for Agolius abdominalis pecoudi specie are insufficient"
## [1] "Data for Agolius bonvouloiri bonvouloiri specie are insufficient"
## [1] "Data for Agolius bonvouloiri cantabricus specie are insufficient"
## [1] "Data for Agrilinus convexus specie are insufficient"
## [1] "Data for Agrilinus sp. specie are insufficient"
## [1] "Data for Ahermodontus ambrosi specie are insufficient"
## [1] "Data for Ahermodontus marini specie are insufficient"
## [1] "Data for Ammoecius brevis specie are insufficient"
## [1] "Data for Ammoecius dentatus specie are insufficient"
## [1] "Data for Anomius baeticus specie are insufficient"
## [1] "Data for Brindalus porcicollis specie are insufficient"
## [1] "Data for Brindalus rotundipennis specie are insufficient"
## [1] "Data for Ceratophyus alloini specie are insufficient"
## [1] "Data for Ceratophyus holfmannseggi specie are insufficient"
## [1] "Data for Ceratophyus martinezi specie are insufficient"
## [1] "Data for Ceratophyus rossii specie are insufficient"
## [1] "Data for Cheironitis furcifer specie are insufficient"
## [1] "Data for Chilothorax brancoi specie are insufficient"
## [1] "Data for Chilothorax conspurcatus specie are insufficient"
## [1] "Data for Chilothorax melanostictus specie are insufficient"
## [1] "Data for Chilothorax paykulli specie are insufficient"
## [1] "Data for Chilothorax pictus specie are insufficient"
## [1] "Data for Erytus cognatus specie are insufficient"
## [1] "Data for Esymus sesquivittatus specie are insufficient"
## [1] "Data for Euoniticellus pallens specie are insufficient"
## [1] "Data for Euorodalus boiteli specie are insufficient"
## [1] "Data for Eupleurus subterraneus subterraneus specie are insufficient"
## [1] "Data for Geotrupes spiniger specie are insufficient"
## [1] "Data for Gymnopleurus mopsus mopsus specie are insufficient"
## [1] "Data for Heptaulacus algarbiensis specie are insufficient"
## [1] "Data for Heptaulacus brancoi specie are insufficient"
## [1] "Data for Heptaulacus gadetinus specie are insufficient"
## [1] "Data for Iberoaphodius dellacasai specie are insufficient"
## [1] "Data for Jekelius bahilloi specie are insufficient"
## [1] "Data for Jekelius castillanus specie are insufficient"
## [1] "Data for Jekelius catalonicus specie are insufficient"
## [1] "Data for Jekelius chersinus specie are insufficient"
## [1] "Data for Jekelius hernandezi specie are insufficient"
## [1] "Data for Jekelius hispanus specie are insufficient"
## [1] "Data for Jekelius intermedius specie are insufficient"
## [1] "Data for Limarus zenkeri specie are insufficient"
## [1] "Data for Liothorax plagiatus specie are insufficient"
## [1] "Data for Loraspis frater specie are insufficient"
## [1] "Data for Melinopterus pubescens specie are insufficient"
## [1] "Data for Melinopterus reyi specie are insufficient"
## [1] "Data for Mendidaphodius paganettii specie are insufficient"
## [1] "Data for Neagolius heydeni specie are insufficient"
## [1] "Data for Neagolius montanus specie are insufficient"
## [1] "Data for Nimbus obliteratus specie are insufficient"
## [1] "Data for Nimbus richardi specie are insufficient"
## [1] "Data for Ochodaeus inermis specie are insufficient"
## [1] "Data for Odonteus armiger specie are insufficient"
## [1] "Data for Onthophagus albarracinus specie are insufficient"
## [1] "Data for Onthophagus andalusicus andalusicus specie are insufficient"
## [1] "Data for Onthophagus hirtus specie are insufficient"
## [1] "Data for Onthophagus merdarius specie are insufficient"
## [1] "Data for Onthophagus nigellus specie are insufficient"
## [1] "Data for Onthophagus nuchicomis specie are insufficient"
## [1] "Data for Onthophagus semicomis specie are insufficient"
## [1] "Data for Oxyomus sylvestris specie are insufficient"
## [1] "Data for Parammoecius corvinus specie are insufficient"
## [1] "Data for Parammoecius pyrenaeus specie are insufficient"
## [1] "Data for Parataenius simulator specie are insufficient"
## [1] "Data for Phalacronothus biguttatus specie are insufficient"
## [1] "Data for Phalacronothus putoni specie are insufficient"
## [1] "Data for Plagiogonus arenarius specie are insufficient"
## [1] "Data for Plagiogonus nanus specie are insufficient"
## [1] "Data for Planolinus fasciatus specie are insufficient"
## [1] "Data for Platytomus tibialis specie are insufficient"
## [1] "Data for Pleurophorus mediterranicus specie are insufficient"
## [1] "Data for Psammodius asper specie are insufficient"
## [1] "Data for Psammodius basalis specie are insufficient"
## [1] "Data for Psammodius laevipennis specie are insufficient"
## [1] "Data for Psammodius plicicollis specie are insufficient"
## [1] "Data for Pseudacrossus sharpi specie are insufficient"
## [1] "Data for Rhyssemus algiricus specie are insufficient"
## [1] "Data for Rhyssemus convexus specie are insufficient"
## [1] "Data for Rhyssemus germanus specie are insufficient"
## [1] "Data for Rhyssemus parallelus specie are insufficient"
## [1] "Data for Rhyssemus sulcatus specie are insufficient"
## [1] "Data for Scarabaeus pius specie are insufficient"
## [1] "Data for Scarabaeus typhon specie are insufficient"
## [1] "Data for Silphotrupes escorialensis escorialensis specie are insufficient"
## [1] "Data for Silphotrupes escorialensis opaculus specie are insufficient"
## [1] "Data for Silphotrupes orocantabricus specie are insufficient"
## [1] "Data for Silphotrupes punctatissimus specie are insufficient"
## [1] "Data for Thorectes baraudi specie are insufficient"
## [1] "Data for Thorectes ferreri specie are insufficient"
## [1] "Data for Thorectes laevigatus specie are insufficient"
## [1] "Data for Thorectes valencianus specie are insufficient"
## [1] "Data for Trypocopris vernalis specie are insufficient"

3 Variables

A partir de aquí se generan los resultados y tablas para cada variable independiente

4 Latitude

4.1 Table

tabla_ind_lat <- filter(tabla_ind, Variable == "Lat")
DT::datatable(tabla_ind_lat,
              class = "nowrap",
              filter = 'top',
  extensions = "Buttons",
  options = list(
    autoWidth = TRUE,
    dom = 'Bfrtip',
    buttons = c("copy", "csv", "excel")
  )
)

4.2 Graphs

for ( i in 1:length(spp)){
  ind <- filter(Data, Especie == spp[i])
  if (nrow(ind) > 50) {
  print(ggplot() + 
  geom_smooth(data= Data, aes(x = Año_Mes, y = Lat),col = "black", fill = "black", method = "lm") +
  geom_smooth(data= ind, aes(x = Año_Mes, y = Lat),col = "red", fill = "red", method = "lm")+
  ggtitle(paste0(spp[i]))+
  labs(x= "Year", y = "Latitude")+
  theme_minimal())
  }else{
  print(paste0("Data for ", ind[1, 1], " specie are insufficient")) 
  }
}

## [1] "Data for Aegialia arenaria specie are insufficient"
## [1] "Data for Agolius abdominalis pecoudi specie are insufficient"

## [1] "Data for Agolius bonvouloiri bonvouloiri specie are insufficient"
## [1] "Data for Agolius bonvouloiri cantabricus specie are insufficient"

## [1] "Data for Agrilinus convexus specie are insufficient"

## [1] "Data for Agrilinus sp. specie are insufficient"
## [1] "Data for Ahermodontus ambrosi specie are insufficient"
## [1] "Data for Ahermodontus marini specie are insufficient"

## [1] "Data for Ammoecius brevis specie are insufficient"
## [1] "Data for Ammoecius dentatus specie are insufficient"

## [1] "Data for Anomius baeticus specie are insufficient"

## [1] "Data for Brindalus porcicollis specie are insufficient"
## [1] "Data for Brindalus rotundipennis specie are insufficient"

## [1] "Data for Ceratophyus alloini specie are insufficient"

## [1] "Data for Ceratophyus holfmannseggi specie are insufficient"
## [1] "Data for Ceratophyus martinezi specie are insufficient"
## [1] "Data for Ceratophyus rossii specie are insufficient"
## [1] "Data for Cheironitis furcifer specie are insufficient"

## [1] "Data for Chilothorax brancoi specie are insufficient"

## [1] "Data for Chilothorax conspurcatus specie are insufficient"

## [1] "Data for Chilothorax melanostictus specie are insufficient"
## [1] "Data for Chilothorax paykulli specie are insufficient"
## [1] "Data for Chilothorax pictus specie are insufficient"

## [1] "Data for Erytus cognatus specie are insufficient"

## [1] "Data for Esymus sesquivittatus specie are insufficient"

## [1] "Data for Euoniticellus pallens specie are insufficient"

## [1] "Data for Euorodalus boiteli specie are insufficient"

## [1] "Data for Eupleurus subterraneus subterraneus specie are insufficient"

## [1] "Data for Geotrupes spiniger specie are insufficient"

## [1] "Data for Gymnopleurus mopsus mopsus specie are insufficient"

## [1] "Data for Heptaulacus algarbiensis specie are insufficient"
## [1] "Data for Heptaulacus brancoi specie are insufficient"
## [1] "Data for Heptaulacus gadetinus specie are insufficient"

## [1] "Data for Iberoaphodius dellacasai specie are insufficient"

## [1] "Data for Jekelius bahilloi specie are insufficient"
## [1] "Data for Jekelius castillanus specie are insufficient"
## [1] "Data for Jekelius catalonicus specie are insufficient"
## [1] "Data for Jekelius chersinus specie are insufficient"
## [1] "Data for Jekelius hernandezi specie are insufficient"
## [1] "Data for Jekelius hispanus specie are insufficient"
## [1] "Data for Jekelius intermedius specie are insufficient"

## [1] "Data for Limarus zenkeri specie are insufficient"

## [1] "Data for Liothorax plagiatus specie are insufficient"
## [1] "Data for Loraspis frater specie are insufficient"

## [1] "Data for Melinopterus pubescens specie are insufficient"
## [1] "Data for Melinopterus reyi specie are insufficient"

## [1] "Data for Mendidaphodius paganettii specie are insufficient"
## [1] "Data for Neagolius heydeni specie are insufficient"
## [1] "Data for Neagolius montanus specie are insufficient"

## [1] "Data for Nimbus obliteratus specie are insufficient"

## [1] "Data for Nimbus richardi specie are insufficient"

## [1] "Data for Ochodaeus inermis specie are insufficient"
## [1] "Data for Odonteus armiger specie are insufficient"

## [1] "Data for Onthophagus albarracinus specie are insufficient"
## [1] "Data for Onthophagus andalusicus andalusicus specie are insufficient"

## [1] "Data for Onthophagus hirtus specie are insufficient"

## [1] "Data for Onthophagus merdarius specie are insufficient"
## [1] "Data for Onthophagus nigellus specie are insufficient"
## [1] "Data for Onthophagus nuchicomis specie are insufficient"

## [1] "Data for Onthophagus semicomis specie are insufficient"

## [1] "Data for Oxyomus sylvestris specie are insufficient"
## [1] "Data for Parammoecius corvinus specie are insufficient"
## [1] "Data for Parammoecius pyrenaeus specie are insufficient"
## [1] "Data for Parataenius simulator specie are insufficient"
## [1] "Data for Phalacronothus biguttatus specie are insufficient"
## [1] "Data for Phalacronothus putoni specie are insufficient"

## [1] "Data for Plagiogonus arenarius specie are insufficient"
## [1] "Data for Plagiogonus nanus specie are insufficient"

## [1] "Data for Planolinus fasciatus specie are insufficient"
## [1] "Data for Platytomus tibialis specie are insufficient"

## [1] "Data for Pleurophorus mediterranicus specie are insufficient"
## [1] "Data for Psammodius asper specie are insufficient"
## [1] "Data for Psammodius basalis specie are insufficient"
## [1] "Data for Psammodius laevipennis specie are insufficient"
## [1] "Data for Psammodius plicicollis specie are insufficient"
## [1] "Data for Pseudacrossus sharpi specie are insufficient"

## [1] "Data for Rhyssemus algiricus specie are insufficient"
## [1] "Data for Rhyssemus convexus specie are insufficient"
## [1] "Data for Rhyssemus germanus specie are insufficient"
## [1] "Data for Rhyssemus parallelus specie are insufficient"
## [1] "Data for Rhyssemus sulcatus specie are insufficient"
## [1] "Data for Scarabaeus pius specie are insufficient"

## [1] "Data for Scarabaeus typhon specie are insufficient"

## [1] "Data for Silphotrupes escorialensis escorialensis specie are insufficient"
## [1] "Data for Silphotrupes escorialensis opaculus specie are insufficient"
## [1] "Data for Silphotrupes orocantabricus specie are insufficient"
## [1] "Data for Silphotrupes punctatissimus specie are insufficient"

## [1] "Data for Thorectes baraudi specie are insufficient"
## [1] "Data for Thorectes ferreri specie are insufficient"
## [1] "Data for Thorectes laevigatus specie are insufficient"

## [1] "Data for Thorectes valencianus specie are insufficient"

## [1] "Data for Trypocopris vernalis specie are insufficient"

5 Longitude

5.1 Table

tabla_ind_lon <- filter(tabla_ind, Variable == "Long")
DT::datatable(tabla_ind_lon,
              class = "nowrap",
              filter = 'top',
  extensions = "Buttons",
  options = list(
    autoWidth = TRUE,
    dom = 'Bfrtip',
    buttons = c("copy", "csv", "excel")
  )
)

5.2 Graphs

for ( i in 1:length(spp)){
  ind <- filter(Data, Especie == spp[i])
  if (nrow(ind) > 50) {
  print(ggplot() + 
  geom_smooth(data= Data, aes(x = Año_Mes, y = Long),col = "black", fill = "black", method = "lm") +
  geom_smooth(data= ind, aes(x = Año_Mes, y = Long),col = "red", fill = "red", method = "lm")+
  ggtitle(paste0(spp[i]))+
  labs(x= "Year", y = "Longitude")+
  theme_minimal())
  }else{
  print(paste0("Data for ", ind[1, 1], " specie are insufficient")) 
  }
}

## [1] "Data for Aegialia arenaria specie are insufficient"
## [1] "Data for Agolius abdominalis pecoudi specie are insufficient"

## [1] "Data for Agolius bonvouloiri bonvouloiri specie are insufficient"
## [1] "Data for Agolius bonvouloiri cantabricus specie are insufficient"

## [1] "Data for Agrilinus convexus specie are insufficient"

## [1] "Data for Agrilinus sp. specie are insufficient"
## [1] "Data for Ahermodontus ambrosi specie are insufficient"
## [1] "Data for Ahermodontus marini specie are insufficient"

## [1] "Data for Ammoecius brevis specie are insufficient"
## [1] "Data for Ammoecius dentatus specie are insufficient"

## [1] "Data for Anomius baeticus specie are insufficient"

## [1] "Data for Brindalus porcicollis specie are insufficient"
## [1] "Data for Brindalus rotundipennis specie are insufficient"

## [1] "Data for Ceratophyus alloini specie are insufficient"

## [1] "Data for Ceratophyus holfmannseggi specie are insufficient"
## [1] "Data for Ceratophyus martinezi specie are insufficient"
## [1] "Data for Ceratophyus rossii specie are insufficient"
## [1] "Data for Cheironitis furcifer specie are insufficient"

## [1] "Data for Chilothorax brancoi specie are insufficient"

## [1] "Data for Chilothorax conspurcatus specie are insufficient"

## [1] "Data for Chilothorax melanostictus specie are insufficient"
## [1] "Data for Chilothorax paykulli specie are insufficient"
## [1] "Data for Chilothorax pictus specie are insufficient"

## [1] "Data for Erytus cognatus specie are insufficient"

## [1] "Data for Esymus sesquivittatus specie are insufficient"

## [1] "Data for Euoniticellus pallens specie are insufficient"

## [1] "Data for Euorodalus boiteli specie are insufficient"

## [1] "Data for Eupleurus subterraneus subterraneus specie are insufficient"

## [1] "Data for Geotrupes spiniger specie are insufficient"

## [1] "Data for Gymnopleurus mopsus mopsus specie are insufficient"

## [1] "Data for Heptaulacus algarbiensis specie are insufficient"
## [1] "Data for Heptaulacus brancoi specie are insufficient"
## [1] "Data for Heptaulacus gadetinus specie are insufficient"

## [1] "Data for Iberoaphodius dellacasai specie are insufficient"

## [1] "Data for Jekelius bahilloi specie are insufficient"
## [1] "Data for Jekelius castillanus specie are insufficient"
## [1] "Data for Jekelius catalonicus specie are insufficient"
## [1] "Data for Jekelius chersinus specie are insufficient"
## [1] "Data for Jekelius hernandezi specie are insufficient"
## [1] "Data for Jekelius hispanus specie are insufficient"
## [1] "Data for Jekelius intermedius specie are insufficient"

## [1] "Data for Limarus zenkeri specie are insufficient"

## [1] "Data for Liothorax plagiatus specie are insufficient"
## [1] "Data for Loraspis frater specie are insufficient"

## [1] "Data for Melinopterus pubescens specie are insufficient"
## [1] "Data for Melinopterus reyi specie are insufficient"

## [1] "Data for Mendidaphodius paganettii specie are insufficient"
## [1] "Data for Neagolius heydeni specie are insufficient"
## [1] "Data for Neagolius montanus specie are insufficient"

## [1] "Data for Nimbus obliteratus specie are insufficient"

## [1] "Data for Nimbus richardi specie are insufficient"

## [1] "Data for Ochodaeus inermis specie are insufficient"
## [1] "Data for Odonteus armiger specie are insufficient"

## [1] "Data for Onthophagus albarracinus specie are insufficient"
## [1] "Data for Onthophagus andalusicus andalusicus specie are insufficient"

## [1] "Data for Onthophagus hirtus specie are insufficient"

## [1] "Data for Onthophagus merdarius specie are insufficient"
## [1] "Data for Onthophagus nigellus specie are insufficient"
## [1] "Data for Onthophagus nuchicomis specie are insufficient"

## [1] "Data for Onthophagus semicomis specie are insufficient"

## [1] "Data for Oxyomus sylvestris specie are insufficient"
## [1] "Data for Parammoecius corvinus specie are insufficient"
## [1] "Data for Parammoecius pyrenaeus specie are insufficient"
## [1] "Data for Parataenius simulator specie are insufficient"
## [1] "Data for Phalacronothus biguttatus specie are insufficient"
## [1] "Data for Phalacronothus putoni specie are insufficient"

## [1] "Data for Plagiogonus arenarius specie are insufficient"
## [1] "Data for Plagiogonus nanus specie are insufficient"

## [1] "Data for Planolinus fasciatus specie are insufficient"
## [1] "Data for Platytomus tibialis specie are insufficient"

## [1] "Data for Pleurophorus mediterranicus specie are insufficient"
## [1] "Data for Psammodius asper specie are insufficient"
## [1] "Data for Psammodius basalis specie are insufficient"
## [1] "Data for Psammodius laevipennis specie are insufficient"
## [1] "Data for Psammodius plicicollis specie are insufficient"
## [1] "Data for Pseudacrossus sharpi specie are insufficient"

## [1] "Data for Rhyssemus algiricus specie are insufficient"
## [1] "Data for Rhyssemus convexus specie are insufficient"
## [1] "Data for Rhyssemus germanus specie are insufficient"
## [1] "Data for Rhyssemus parallelus specie are insufficient"
## [1] "Data for Rhyssemus sulcatus specie are insufficient"
## [1] "Data for Scarabaeus pius specie are insufficient"

## [1] "Data for Scarabaeus typhon specie are insufficient"

## [1] "Data for Silphotrupes escorialensis escorialensis specie are insufficient"
## [1] "Data for Silphotrupes escorialensis opaculus specie are insufficient"
## [1] "Data for Silphotrupes orocantabricus specie are insufficient"
## [1] "Data for Silphotrupes punctatissimus specie are insufficient"

## [1] "Data for Thorectes baraudi specie are insufficient"
## [1] "Data for Thorectes ferreri specie are insufficient"
## [1] "Data for Thorectes laevigatus specie are insufficient"

## [1] "Data for Thorectes valencianus specie are insufficient"

## [1] "Data for Trypocopris vernalis specie are insufficient"

6 Elevation

6.1 Table

tabla_ind_elev <- filter(tabla_ind, Variable == "ELEVATION")
DT::datatable(tabla_ind_elev,
              class = "nowrap",
              filter = 'top',
  extensions = "Buttons",
  options = list(
    autoWidth = TRUE,
    dom = 'Bfrtip',
    buttons = c("copy", "csv", "excel")
  )
)

6.2 Graphs

for ( i in 1:length(spp)){
  ind <- filter(Data, Especie == spp[i])
  if (nrow(ind) > 50) {
    print(ggplot() + 
            geom_smooth(data= Data, aes(x = Año_Mes, y = ELEVATION),col = "black", fill = "black", method = "lm") +
            geom_smooth(data= ind, aes(x = Año_Mes, y =  ELEVATION),col = "red", fill = "red", method = "lm")+
            ggtitle(paste0(spp[i]))+
            labs(x= "Year", y = "Elevation")+
            theme_minimal())
  }else{
    print(paste0("Data for ", ind[1, 1], " specie are insufficient")) 
  }
}

## [1] "Data for Aegialia arenaria specie are insufficient"
## [1] "Data for Agolius abdominalis pecoudi specie are insufficient"

## [1] "Data for Agolius bonvouloiri bonvouloiri specie are insufficient"
## [1] "Data for Agolius bonvouloiri cantabricus specie are insufficient"

## [1] "Data for Agrilinus convexus specie are insufficient"

## [1] "Data for Agrilinus sp. specie are insufficient"
## [1] "Data for Ahermodontus ambrosi specie are insufficient"
## [1] "Data for Ahermodontus marini specie are insufficient"

## [1] "Data for Ammoecius brevis specie are insufficient"
## [1] "Data for Ammoecius dentatus specie are insufficient"

## [1] "Data for Anomius baeticus specie are insufficient"

## [1] "Data for Brindalus porcicollis specie are insufficient"
## [1] "Data for Brindalus rotundipennis specie are insufficient"

## [1] "Data for Ceratophyus alloini specie are insufficient"

## [1] "Data for Ceratophyus holfmannseggi specie are insufficient"
## [1] "Data for Ceratophyus martinezi specie are insufficient"
## [1] "Data for Ceratophyus rossii specie are insufficient"
## [1] "Data for Cheironitis furcifer specie are insufficient"

## [1] "Data for Chilothorax brancoi specie are insufficient"

## [1] "Data for Chilothorax conspurcatus specie are insufficient"

## [1] "Data for Chilothorax melanostictus specie are insufficient"
## [1] "Data for Chilothorax paykulli specie are insufficient"
## [1] "Data for Chilothorax pictus specie are insufficient"

## [1] "Data for Erytus cognatus specie are insufficient"

## [1] "Data for Esymus sesquivittatus specie are insufficient"

## [1] "Data for Euoniticellus pallens specie are insufficient"

## [1] "Data for Euorodalus boiteli specie are insufficient"

## [1] "Data for Eupleurus subterraneus subterraneus specie are insufficient"

## [1] "Data for Geotrupes spiniger specie are insufficient"

## [1] "Data for Gymnopleurus mopsus mopsus specie are insufficient"

## [1] "Data for Heptaulacus algarbiensis specie are insufficient"
## [1] "Data for Heptaulacus brancoi specie are insufficient"
## [1] "Data for Heptaulacus gadetinus specie are insufficient"

## [1] "Data for Iberoaphodius dellacasai specie are insufficient"

## [1] "Data for Jekelius bahilloi specie are insufficient"
## [1] "Data for Jekelius castillanus specie are insufficient"
## [1] "Data for Jekelius catalonicus specie are insufficient"
## [1] "Data for Jekelius chersinus specie are insufficient"
## [1] "Data for Jekelius hernandezi specie are insufficient"
## [1] "Data for Jekelius hispanus specie are insufficient"
## [1] "Data for Jekelius intermedius specie are insufficient"

## [1] "Data for Limarus zenkeri specie are insufficient"

## [1] "Data for Liothorax plagiatus specie are insufficient"
## [1] "Data for Loraspis frater specie are insufficient"

## [1] "Data for Melinopterus pubescens specie are insufficient"
## [1] "Data for Melinopterus reyi specie are insufficient"

## [1] "Data for Mendidaphodius paganettii specie are insufficient"
## [1] "Data for Neagolius heydeni specie are insufficient"
## [1] "Data for Neagolius montanus specie are insufficient"

## [1] "Data for Nimbus obliteratus specie are insufficient"

## [1] "Data for Nimbus richardi specie are insufficient"

## [1] "Data for Ochodaeus inermis specie are insufficient"
## [1] "Data for Odonteus armiger specie are insufficient"

## [1] "Data for Onthophagus albarracinus specie are insufficient"
## [1] "Data for Onthophagus andalusicus andalusicus specie are insufficient"

## [1] "Data for Onthophagus hirtus specie are insufficient"

## [1] "Data for Onthophagus merdarius specie are insufficient"
## [1] "Data for Onthophagus nigellus specie are insufficient"
## [1] "Data for Onthophagus nuchicomis specie are insufficient"

## [1] "Data for Onthophagus semicomis specie are insufficient"

## [1] "Data for Oxyomus sylvestris specie are insufficient"
## [1] "Data for Parammoecius corvinus specie are insufficient"
## [1] "Data for Parammoecius pyrenaeus specie are insufficient"
## [1] "Data for Parataenius simulator specie are insufficient"
## [1] "Data for Phalacronothus biguttatus specie are insufficient"
## [1] "Data for Phalacronothus putoni specie are insufficient"

## [1] "Data for Plagiogonus arenarius specie are insufficient"
## [1] "Data for Plagiogonus nanus specie are insufficient"

## [1] "Data for Planolinus fasciatus specie are insufficient"
## [1] "Data for Platytomus tibialis specie are insufficient"

## [1] "Data for Pleurophorus mediterranicus specie are insufficient"
## [1] "Data for Psammodius asper specie are insufficient"
## [1] "Data for Psammodius basalis specie are insufficient"
## [1] "Data for Psammodius laevipennis specie are insufficient"
## [1] "Data for Psammodius plicicollis specie are insufficient"
## [1] "Data for Pseudacrossus sharpi specie are insufficient"

## [1] "Data for Rhyssemus algiricus specie are insufficient"
## [1] "Data for Rhyssemus convexus specie are insufficient"
## [1] "Data for Rhyssemus germanus specie are insufficient"
## [1] "Data for Rhyssemus parallelus specie are insufficient"
## [1] "Data for Rhyssemus sulcatus specie are insufficient"
## [1] "Data for Scarabaeus pius specie are insufficient"

## [1] "Data for Scarabaeus typhon specie are insufficient"

## [1] "Data for Silphotrupes escorialensis escorialensis specie are insufficient"
## [1] "Data for Silphotrupes escorialensis opaculus specie are insufficient"
## [1] "Data for Silphotrupes orocantabricus specie are insufficient"
## [1] "Data for Silphotrupes punctatissimus specie are insufficient"

## [1] "Data for Thorectes baraudi specie are insufficient"
## [1] "Data for Thorectes ferreri specie are insufficient"
## [1] "Data for Thorectes laevigatus specie are insufficient"

## [1] "Data for Thorectes valencianus specie are insufficient"

## [1] "Data for Trypocopris vernalis specie are insufficient"

7 Maximum temperature

7.1 Table

tabla_ind_tmax <- filter(tabla_ind, Variable == "TMAX")
DT::datatable(tabla_ind_tmax,
              class = "nowrap",
              filter = 'top',
  extensions = "Buttons",
  options = list(
    autoWidth = TRUE,
    dom = 'Bfrtip',
    buttons = c("copy", "csv", "excel")
  )
)

7.2 Graphs

for ( i in 1:length(spp)){
  ind <- filter(Data, Especie == spp[i])
  if (nrow(ind) > 50) {
    print(ggplot() + 
            geom_smooth(data= Data, aes(x = Año_Mes, y = TMAX),col = "black", fill = "black", method = "lm") +
            geom_smooth(data= ind, aes(x = Año_Mes, y = TMAX),col = "red", fill = "red", method = "lm")+
            ggtitle(paste0(spp[i]))+
            labs(x= "Year", y = "Maximum temperature")+
            theme_minimal())
  }else{
    print(paste0("Data for ", ind[1, 1], " specie are insufficient")) 
  }
}

## [1] "Data for Aegialia arenaria specie are insufficient"
## [1] "Data for Agolius abdominalis pecoudi specie are insufficient"

## [1] "Data for Agolius bonvouloiri bonvouloiri specie are insufficient"
## [1] "Data for Agolius bonvouloiri cantabricus specie are insufficient"

## [1] "Data for Agrilinus convexus specie are insufficient"

## [1] "Data for Agrilinus sp. specie are insufficient"
## [1] "Data for Ahermodontus ambrosi specie are insufficient"
## [1] "Data for Ahermodontus marini specie are insufficient"

## [1] "Data for Ammoecius brevis specie are insufficient"
## [1] "Data for Ammoecius dentatus specie are insufficient"

## [1] "Data for Anomius baeticus specie are insufficient"

## [1] "Data for Brindalus porcicollis specie are insufficient"
## [1] "Data for Brindalus rotundipennis specie are insufficient"

## [1] "Data for Ceratophyus alloini specie are insufficient"

## [1] "Data for Ceratophyus holfmannseggi specie are insufficient"
## [1] "Data for Ceratophyus martinezi specie are insufficient"
## [1] "Data for Ceratophyus rossii specie are insufficient"
## [1] "Data for Cheironitis furcifer specie are insufficient"

## [1] "Data for Chilothorax brancoi specie are insufficient"

## [1] "Data for Chilothorax conspurcatus specie are insufficient"

## [1] "Data for Chilothorax melanostictus specie are insufficient"
## [1] "Data for Chilothorax paykulli specie are insufficient"
## [1] "Data for Chilothorax pictus specie are insufficient"

## [1] "Data for Erytus cognatus specie are insufficient"

## [1] "Data for Esymus sesquivittatus specie are insufficient"

## [1] "Data for Euoniticellus pallens specie are insufficient"

## [1] "Data for Euorodalus boiteli specie are insufficient"

## [1] "Data for Eupleurus subterraneus subterraneus specie are insufficient"

## [1] "Data for Geotrupes spiniger specie are insufficient"

## [1] "Data for Gymnopleurus mopsus mopsus specie are insufficient"

## [1] "Data for Heptaulacus algarbiensis specie are insufficient"
## [1] "Data for Heptaulacus brancoi specie are insufficient"
## [1] "Data for Heptaulacus gadetinus specie are insufficient"

## [1] "Data for Iberoaphodius dellacasai specie are insufficient"

## [1] "Data for Jekelius bahilloi specie are insufficient"
## [1] "Data for Jekelius castillanus specie are insufficient"
## [1] "Data for Jekelius catalonicus specie are insufficient"
## [1] "Data for Jekelius chersinus specie are insufficient"
## [1] "Data for Jekelius hernandezi specie are insufficient"
## [1] "Data for Jekelius hispanus specie are insufficient"
## [1] "Data for Jekelius intermedius specie are insufficient"

## [1] "Data for Limarus zenkeri specie are insufficient"

## [1] "Data for Liothorax plagiatus specie are insufficient"
## [1] "Data for Loraspis frater specie are insufficient"

## [1] "Data for Melinopterus pubescens specie are insufficient"
## [1] "Data for Melinopterus reyi specie are insufficient"

## [1] "Data for Mendidaphodius paganettii specie are insufficient"
## [1] "Data for Neagolius heydeni specie are insufficient"
## [1] "Data for Neagolius montanus specie are insufficient"

## [1] "Data for Nimbus obliteratus specie are insufficient"

## [1] "Data for Nimbus richardi specie are insufficient"

## [1] "Data for Ochodaeus inermis specie are insufficient"
## [1] "Data for Odonteus armiger specie are insufficient"

## [1] "Data for Onthophagus albarracinus specie are insufficient"
## [1] "Data for Onthophagus andalusicus andalusicus specie are insufficient"

## [1] "Data for Onthophagus hirtus specie are insufficient"

## [1] "Data for Onthophagus merdarius specie are insufficient"
## [1] "Data for Onthophagus nigellus specie are insufficient"
## [1] "Data for Onthophagus nuchicomis specie are insufficient"

## [1] "Data for Onthophagus semicomis specie are insufficient"

## [1] "Data for Oxyomus sylvestris specie are insufficient"
## [1] "Data for Parammoecius corvinus specie are insufficient"
## [1] "Data for Parammoecius pyrenaeus specie are insufficient"
## [1] "Data for Parataenius simulator specie are insufficient"
## [1] "Data for Phalacronothus biguttatus specie are insufficient"
## [1] "Data for Phalacronothus putoni specie are insufficient"

## [1] "Data for Plagiogonus arenarius specie are insufficient"
## [1] "Data for Plagiogonus nanus specie are insufficient"

## [1] "Data for Planolinus fasciatus specie are insufficient"
## [1] "Data for Platytomus tibialis specie are insufficient"

## [1] "Data for Pleurophorus mediterranicus specie are insufficient"
## [1] "Data for Psammodius asper specie are insufficient"
## [1] "Data for Psammodius basalis specie are insufficient"
## [1] "Data for Psammodius laevipennis specie are insufficient"
## [1] "Data for Psammodius plicicollis specie are insufficient"
## [1] "Data for Pseudacrossus sharpi specie are insufficient"

## [1] "Data for Rhyssemus algiricus specie are insufficient"
## [1] "Data for Rhyssemus convexus specie are insufficient"
## [1] "Data for Rhyssemus germanus specie are insufficient"
## [1] "Data for Rhyssemus parallelus specie are insufficient"
## [1] "Data for Rhyssemus sulcatus specie are insufficient"
## [1] "Data for Scarabaeus pius specie are insufficient"

## [1] "Data for Scarabaeus typhon specie are insufficient"

## [1] "Data for Silphotrupes escorialensis escorialensis specie are insufficient"
## [1] "Data for Silphotrupes escorialensis opaculus specie are insufficient"
## [1] "Data for Silphotrupes orocantabricus specie are insufficient"
## [1] "Data for Silphotrupes punctatissimus specie are insufficient"

## [1] "Data for Thorectes baraudi specie are insufficient"
## [1] "Data for Thorectes ferreri specie are insufficient"
## [1] "Data for Thorectes laevigatus specie are insufficient"

## [1] "Data for Thorectes valencianus specie are insufficient"

## [1] "Data for Trypocopris vernalis specie are insufficient"

8 Minimum temperature

8.1 Table

tabla_ind_tmin <- filter(tabla_ind, Variable == "TMIN")
DT::datatable(tabla_ind_tmin,
              class = "nowrap",
              filter = 'top',
  extensions = "Buttons",
  options = list(
    autoWidth = TRUE,
    dom = 'Bfrtip',
    buttons = c("copy", "csv", "excel")
  )
)

8.2 Graphs

for ( i in 1:length(spp)){
  ind <- filter(Data, Especie == spp[i])
  if (nrow(ind) > 50) {
    print(ggplot() + 
            geom_smooth(data= Data, aes(x = Año_Mes, y = TMIN),col = "black", fill = "black", method = "lm") +
            geom_smooth(data= ind, aes(x = Año_Mes, y = TMIN),col = "red", fill = "red", method = "lm")+
            ggtitle(paste0(spp[i]))+
            labs(x= "Year", y = "Minimum temperature")+
            theme_minimal())
  }else{
    print(paste0("Data for ", ind[1, 1], " specie are insufficient")) 
  }
}

## [1] "Data for Aegialia arenaria specie are insufficient"
## [1] "Data for Agolius abdominalis pecoudi specie are insufficient"

## [1] "Data for Agolius bonvouloiri bonvouloiri specie are insufficient"
## [1] "Data for Agolius bonvouloiri cantabricus specie are insufficient"

## [1] "Data for Agrilinus convexus specie are insufficient"

## [1] "Data for Agrilinus sp. specie are insufficient"
## [1] "Data for Ahermodontus ambrosi specie are insufficient"
## [1] "Data for Ahermodontus marini specie are insufficient"

## [1] "Data for Ammoecius brevis specie are insufficient"
## [1] "Data for Ammoecius dentatus specie are insufficient"

## [1] "Data for Anomius baeticus specie are insufficient"

## [1] "Data for Brindalus porcicollis specie are insufficient"
## [1] "Data for Brindalus rotundipennis specie are insufficient"

## [1] "Data for Ceratophyus alloini specie are insufficient"

## [1] "Data for Ceratophyus holfmannseggi specie are insufficient"
## [1] "Data for Ceratophyus martinezi specie are insufficient"
## [1] "Data for Ceratophyus rossii specie are insufficient"
## [1] "Data for Cheironitis furcifer specie are insufficient"

## [1] "Data for Chilothorax brancoi specie are insufficient"

## [1] "Data for Chilothorax conspurcatus specie are insufficient"

## [1] "Data for Chilothorax melanostictus specie are insufficient"
## [1] "Data for Chilothorax paykulli specie are insufficient"
## [1] "Data for Chilothorax pictus specie are insufficient"

## [1] "Data for Erytus cognatus specie are insufficient"

## [1] "Data for Esymus sesquivittatus specie are insufficient"

## [1] "Data for Euoniticellus pallens specie are insufficient"

## [1] "Data for Euorodalus boiteli specie are insufficient"

## [1] "Data for Eupleurus subterraneus subterraneus specie are insufficient"

## [1] "Data for Geotrupes spiniger specie are insufficient"

## [1] "Data for Gymnopleurus mopsus mopsus specie are insufficient"

## [1] "Data for Heptaulacus algarbiensis specie are insufficient"
## [1] "Data for Heptaulacus brancoi specie are insufficient"
## [1] "Data for Heptaulacus gadetinus specie are insufficient"

## [1] "Data for Iberoaphodius dellacasai specie are insufficient"

## [1] "Data for Jekelius bahilloi specie are insufficient"
## [1] "Data for Jekelius castillanus specie are insufficient"
## [1] "Data for Jekelius catalonicus specie are insufficient"
## [1] "Data for Jekelius chersinus specie are insufficient"
## [1] "Data for Jekelius hernandezi specie are insufficient"
## [1] "Data for Jekelius hispanus specie are insufficient"
## [1] "Data for Jekelius intermedius specie are insufficient"

## [1] "Data for Limarus zenkeri specie are insufficient"

## [1] "Data for Liothorax plagiatus specie are insufficient"
## [1] "Data for Loraspis frater specie are insufficient"

## [1] "Data for Melinopterus pubescens specie are insufficient"
## [1] "Data for Melinopterus reyi specie are insufficient"

## [1] "Data for Mendidaphodius paganettii specie are insufficient"
## [1] "Data for Neagolius heydeni specie are insufficient"
## [1] "Data for Neagolius montanus specie are insufficient"

## [1] "Data for Nimbus obliteratus specie are insufficient"

## [1] "Data for Nimbus richardi specie are insufficient"

## [1] "Data for Ochodaeus inermis specie are insufficient"
## [1] "Data for Odonteus armiger specie are insufficient"

## [1] "Data for Onthophagus albarracinus specie are insufficient"
## [1] "Data for Onthophagus andalusicus andalusicus specie are insufficient"

## [1] "Data for Onthophagus hirtus specie are insufficient"

## [1] "Data for Onthophagus merdarius specie are insufficient"
## [1] "Data for Onthophagus nigellus specie are insufficient"
## [1] "Data for Onthophagus nuchicomis specie are insufficient"

## [1] "Data for Onthophagus semicomis specie are insufficient"

## [1] "Data for Oxyomus sylvestris specie are insufficient"
## [1] "Data for Parammoecius corvinus specie are insufficient"
## [1] "Data for Parammoecius pyrenaeus specie are insufficient"
## [1] "Data for Parataenius simulator specie are insufficient"
## [1] "Data for Phalacronothus biguttatus specie are insufficient"
## [1] "Data for Phalacronothus putoni specie are insufficient"

## [1] "Data for Plagiogonus arenarius specie are insufficient"
## [1] "Data for Plagiogonus nanus specie are insufficient"

## [1] "Data for Planolinus fasciatus specie are insufficient"
## [1] "Data for Platytomus tibialis specie are insufficient"

## [1] "Data for Pleurophorus mediterranicus specie are insufficient"
## [1] "Data for Psammodius asper specie are insufficient"
## [1] "Data for Psammodius basalis specie are insufficient"
## [1] "Data for Psammodius laevipennis specie are insufficient"
## [1] "Data for Psammodius plicicollis specie are insufficient"
## [1] "Data for Pseudacrossus sharpi specie are insufficient"

## [1] "Data for Rhyssemus algiricus specie are insufficient"
## [1] "Data for Rhyssemus convexus specie are insufficient"
## [1] "Data for Rhyssemus germanus specie are insufficient"
## [1] "Data for Rhyssemus parallelus specie are insufficient"
## [1] "Data for Rhyssemus sulcatus specie are insufficient"
## [1] "Data for Scarabaeus pius specie are insufficient"

## [1] "Data for Scarabaeus typhon specie are insufficient"

## [1] "Data for Silphotrupes escorialensis escorialensis specie are insufficient"
## [1] "Data for Silphotrupes escorialensis opaculus specie are insufficient"
## [1] "Data for Silphotrupes orocantabricus specie are insufficient"
## [1] "Data for Silphotrupes punctatissimus specie are insufficient"

## [1] "Data for Thorectes baraudi specie are insufficient"
## [1] "Data for Thorectes ferreri specie are insufficient"
## [1] "Data for Thorectes laevigatus specie are insufficient"

## [1] "Data for Thorectes valencianus specie are insufficient"

## [1] "Data for Trypocopris vernalis specie are insufficient"